﻿using System.ComponentModel;
using System;

namespace KasaTakip
{
    [DisplayName("Nakit Detayları")]
    public class NakitBilgileri
    {
        [DisplayName("Para Cinsi")]
        public string ParaCinsi { get; set; }

        [DisplayName("Miktar")]
        public int Miktar { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.ParaCinsi;
        }
    }

    [DisplayName("Banka Detayları")]
    public class BankaBilgileri
    {
        [DisplayName("Banka Adı")]
        public string Adi { get; set; }

        [DisplayName("Slip Adedi")]
        public int Miktar { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.Adi;
        }
    }

    [DisplayName("Harcamalar")]
    public class HarcamaBilgileri
    {
        [DisplayName("Masraf Adı")]
        public string Adi { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.Adi;
        }
    }

    public class CashReport
    {
        [DisplayName("Kasa No")]
        public int KasaNo { get; set; }

        [DisplayName("Kasiyer Adı")]
        public string KasiyerAdi { get; set; }

        [DisplayName("Gerekli Hasılat")]
        public double Ztoplam { get; set; }

        [DisplayName("Gerçek Hasılat")]
        public double GerceklesenToplam { get; set; }

        [DisplayName("Fark")]
        public double Fark { get; set; }

        [DisplayName("Nakit Toplam")]
        public double NakitToplam { get; set; }

        [DisplayName("Banka Toplam")]
        public double BankaToplam { get; set; }

        private BindingList<NakitBilgileri> _NakitBilgileri = new BindingList<NakitBilgileri>();
        private BindingList<BankaBilgileri> _BankaBilgileri = new BindingList<BankaBilgileri>();
        private BindingList<HarcamaBilgileri> _HarcamaBilgileri = new BindingList<HarcamaBilgileri>();
        private BindingList<HarcamaBilgileri> _MasrafBilgileri = new BindingList<HarcamaBilgileri>();


        [DisplayName("Nakit Detayları")]
        public BindingList<NakitBilgileri> NakitBilgileri
        {
            get { return this._NakitBilgileri; }
            set { this._NakitBilgileri = value; }
        }

        [DisplayName("Banka Detayları")]
        public BindingList<BankaBilgileri> BankaBilgileri
        {
            get { return this._BankaBilgileri; }
            set { this._BankaBilgileri = value; }
        }

        [DisplayName("Harcama Detayları")]
        public BindingList<HarcamaBilgileri> HarcamaBilgileri
        {
            get { return this._HarcamaBilgileri; }
            set { this._HarcamaBilgileri = value; }
        }

        [DisplayName("Masraf Faturaları")]
        public BindingList<HarcamaBilgileri> MasrafFaturalari
        {
            get { return this._MasrafBilgileri; }
            set { this._MasrafBilgileri = value; }
        }
    }

    #region Tüm Kasaların Dökümü
    [DisplayName("Nakit Detayları")]
    public class NakitBilgileri2
    {
        [DisplayName("Kasa No")]
        public int KasaNo { get; set; }

        [DisplayName("Kasiyer Adı")]
        public string KasiyerAdi { get; set; }

        [DisplayName("Para Cinsi")]
        public string ParaCinsi { get; set; }

        [DisplayName("Miktar")]
        public int Miktar { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.ParaCinsi;
        }
    }

    [DisplayName("Banka Detayları")]
    public class BankaBilgileri2
    {
        [DisplayName("Kasa No")]
        public int KasaNo { get; set; }

        [DisplayName("Kasiyer Adı")]
        public string KasiyerAdi { get; set; }

        [DisplayName("Banka Adı")]
        public string Adi { get; set; }

        [DisplayName("Slip Adedi")]
        public int Miktar { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.Adi;
        }
    }

    [DisplayName("Harcamalar")]
    public class HarcamaBilgileri2
    {
        [DisplayName("Kasa No")]
        public int KasaNo { get; set; }

        [DisplayName("Kasiyer Adı")]
        public string KasiyerAdi { get; set; }

        [DisplayName("Masraf Adı")]
        public string Adi { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.Adi;
        }
    }

    public class UstBilgiler
    {
        [DisplayName("Kasa No")]
        public int KasaNo { get; set; }

        [DisplayName("Kasiyer Adı")]
        public string KasiyerAdi { get; set; }

        [DisplayName("Gerekli Hasılat")]
        public double Ztoplam { get; set; }

        [DisplayName("Gerçek Hasılat")]
        public double GerceklesenToplam { get; set; }

        [DisplayName("Fark")]
        public double Fark { get; set; }

        [DisplayName("Nakit Toplam")]
        public double NakitToplam { get; set; }

        [DisplayName("Banka Toplam")]
        public double BankaToplam { get; set; }
    }

    public class AllCashReport
    {
        private BindingList<NakitBilgileri2> _NakitBilgileri = new BindingList<NakitBilgileri2>();
        private BindingList<BankaBilgileri2> _BankaBilgileri = new BindingList<BankaBilgileri2>();
        private BindingList<HarcamaBilgileri2> _HarcamaBilgileri = new BindingList<HarcamaBilgileri2>();
        private BindingList<HarcamaBilgileri2> _MasrafBilgileri = new BindingList<HarcamaBilgileri2>();
        private UstBilgiler _UstBilgileri = new UstBilgiler();


        [DisplayName("Üst Bilgiler")]
        public UstBilgiler UstBilgiler { get { return _UstBilgileri; } set { _UstBilgileri = value; } }

        [DisplayName("Nakit Detayları")]
        public BindingList<NakitBilgileri2> NakitBilgileri
        {
            get { return this._NakitBilgileri; }
            set { this._NakitBilgileri = value; }
        }

        [DisplayName("Banka Detayları")]
        public BindingList<BankaBilgileri2> BankaBilgileri
        {
            get { return this._BankaBilgileri; }
            set { this._BankaBilgileri = value; }
        }

        [DisplayName("Harcama Detayları")]
        public BindingList<HarcamaBilgileri2> HarcamaBilgileri
        {
            get { return this._HarcamaBilgileri; }
            set { this._HarcamaBilgileri = value; }
        }

        [DisplayName("Masraf Faturaları")]
        public BindingList<HarcamaBilgileri2> MasrafFaturalari
        {
            get { return this._MasrafBilgileri; }
            set { this._MasrafBilgileri = value; }
        }
    }
    #endregion




    public class GirisCikisBilgileri
    {
        [DisplayName("Açıklama")]
        public string Adi { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.Adi;
        }
    }

    [DisplayName("Kasa Ciroları")]
    public class KasaCiroBilgileri
    {
        [DisplayName("Kasa No")]
        public int KasaNo { get; set; }

        [DisplayName("Kasiyer")]
        public string Kasiyer { get; set; }

        [DisplayName("Fiş Adedi")]
        public int FisAdedi { get; set; }

        [DisplayName("Fatura Adedi")]
        public int FaturaAdedi { get; set; }

        [DisplayName("İade Adedi")]
        public int IadeAdedi { get; set; }

        [DisplayName("Fiş Tutarı")]
        public double FisTutari { get; set; }

        [DisplayName("Fatura Tutari")]
        public double FaturaTutari { get; set; }

        [DisplayName("İade Tutari")]
        public double IadeTutari { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        [DisplayName("Kasa Eksik veya Fazlası")]
        public double Fark { get; set; }

        public override string ToString()
        {
            return this.KasaNo.ToString();
        }
    }

    [DisplayName("Şube Hareketleri")]
    public class SubeTransgerBilgileri
    {
        [DisplayName("Şube Adı")]
        public string SubeAdi { get; set; }

        [DisplayName("İşlem Tipi")]
        public string Tip { get; set; }

        [DisplayName("Döviz Tipi")]
        public string DovizTip { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        public override string ToString()
        {
            return this.SubeAdi;
        }
    }

    [DisplayName("Tahsilatlar")]
    public class TahsilatBilgileri
    {
        [DisplayName("Firma Adı")]
        public string FirmaAdi { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        [DisplayName("Belge No")]
        public string BelgeNo { get; set; }

        public override string ToString()
        {
            return this.FirmaAdi;
        }
    }

    [DisplayName("Açık Hesaplar")]
    public class AcikHesapBilgileri
    {
        [DisplayName("Firma Adı")]
        public string FirmaAdi { get; set; }

        [DisplayName("Tutar")]
        public double Tutar { get; set; }

        [DisplayName("Kdv")]
        public double Kdv { get; set; }

        [DisplayName("Belge No")]
        public string BelgeNo { get; set; }

        public override string ToString()
        {
            return this.FirmaAdi;
        }
    }

    public class StoreReport
    {
        [DisplayName("Bankaya Yatan Para")]
        public double BankayaYatan { get; set; }

        [DisplayName("Kalan Para")]
        public double KalanPara { get; set; }

        [DisplayName("Devir")]
        public double Devir { get; set; }

        [DisplayName("Hasılat")]
        public double Hasilat { get; set; }

        [DisplayName("Şube Giriş Toplamı")]
        public double SubeGirisToplami { get; set; }

        [DisplayName("Şube Çıkış Toplamı")]
        public double SubeCikisToplami { get; set; }

        [DisplayName("Harcamalar Toplamı")]
        public double HarcamalarToplami { get; set; }

        [DisplayName("Tarih")]
        public DateTime Tarih { get; set; }

        [DisplayName("Mağaza Adı")]
        public string MagazaAdi { get; set; }

        [DisplayName("Nakit Toplam")]
        public double NakitToplam { get; set; }

        [DisplayName("Euro Tutari")]
        public double EuroTutari { get; set; }

        [DisplayName("Dolar Tutari")]
        public double DolarTutari { get; set; }

        [DisplayName("Devir Euro Tutari")]
        public double EuroDevir { get; set; }

        [DisplayName("Devir Dolar Tutari")]
        public double DolarDevir { get; set; }

        private BindingList<KasaCiroBilgileri> _KasaCirolari = new BindingList<KasaCiroBilgileri>();
        private BindingList<SubeTransgerBilgileri> _SubeTransferleri = new BindingList<SubeTransgerBilgileri>();
        private BindingList<HarcamaBilgileri> _HarcamaBilgileri = new BindingList<HarcamaBilgileri>();
        private BindingList<TahsilatBilgileri> _TahsilatBilgileri = new BindingList<TahsilatBilgileri>();
        private BindingList<AcikHesapBilgileri> _acikHesapBilgileri = new BindingList<AcikHesapBilgileri>();
        private BindingList<BankaBilgileri> _BankaBilgileri = new BindingList<BankaBilgileri>();
        private BindingList<BankaBilgileri> _CekBilgileri = new BindingList<BankaBilgileri>();
        private BindingList<BankaBilgileri> _YemekFisiBilgileri = new BindingList<BankaBilgileri>();
        private BindingList<HarcamaBilgileri> _MasrafBilgileri = new BindingList<HarcamaBilgileri>();
        private BindingList<GirisCikisBilgileri> _CikisBilgileri = new BindingList<GirisCikisBilgileri>();
        private BindingList<GirisCikisBilgileri> _GirisBilgileri = new BindingList<GirisCikisBilgileri>();
        private BindingList<NakitHareketi> _NakitBilgileri = new BindingList<NakitHareketi>();


        [DisplayName("Nakit Detayları")]
        public BindingList<NakitHareketi> NakitBilgileri
        {
            get { return this._NakitBilgileri; }
            set { this._NakitBilgileri = value; }
        }

        [DisplayName("Kasa Detayları")]
        public BindingList<KasaCiroBilgileri> KasaCirolari
        {
            get { return this._KasaCirolari; }
            set { this._KasaCirolari = value; }
        }

        [DisplayName("Şube Transger Detayları")]
        public BindingList<SubeTransgerBilgileri> SubeTransferleri
        {
            get { return this._SubeTransferleri; }
            set { this._SubeTransferleri = value; }
        }

        [DisplayName("Harcama Detayları")]
        public BindingList<HarcamaBilgileri> HarcamaBilgileri
        {
            get { return this._HarcamaBilgileri; }
            set { this._HarcamaBilgileri = value; }
        }

        [DisplayName("Tahsilatlar")]
        public BindingList<TahsilatBilgileri> TahsilatBilgileri
        {
            get { return this._TahsilatBilgileri; }
            set { this._TahsilatBilgileri = value; }
        }

        [DisplayName("Açık Hesap Bilgileri")]
        public BindingList<AcikHesapBilgileri> AcikHesapBilgileri
        {
            get { return this._acikHesapBilgileri; }
            set { this._acikHesapBilgileri = value; }
        }

        [DisplayName("Banka Detayları")]
        public BindingList<BankaBilgileri> BankaBilgileri
        {
            get { return this._BankaBilgileri; }
            set { this._BankaBilgileri = value; }
        }

        [DisplayName("Çek Detayları")]
        public BindingList<BankaBilgileri> CekBilgileri
        {
            get { return this._CekBilgileri; }
            set { this._CekBilgileri = value; }
        }

        [DisplayName("Yemek Fisi Detayları")]
        public BindingList<BankaBilgileri> YemekFisiBilgileri
        {
            get { return this._YemekFisiBilgileri; }
            set { this._YemekFisiBilgileri = value; }
        }

        [DisplayName("Masraf Faturaları")]
        public BindingList<HarcamaBilgileri> MasrafFaturalari
        {
            get { return this._MasrafBilgileri; }
            set { this._MasrafBilgileri = value; }
        }

        [DisplayName("Mağaza Diğer Çıkışlar")]
        public BindingList<GirisCikisBilgileri> CikisBilgileri
        {
            get { return this._CikisBilgileri; }
            set { this._CikisBilgileri = value; }
        }

        [DisplayName("Mağaza Diğer Girişleri")]
        public BindingList<GirisCikisBilgileri> GirisBilgileri
        {
            get { return this._GirisBilgileri; }
            set { this._GirisBilgileri = value; }
        }
    }
}
